/*
 * IDiscoveryModel.java
 * business
 *
 * Created by ChenTao on 2016/10/19.
 *
 * Copyright (c) 2016年 yidiandao. All rights reserved.
 */

package com.yidiandao.business.data.model;

import com.yidiandao.business.data.response.DiscoveryItemTypeResponse;
import com.yidiandao.business.data.response.DiscoveryMainTypeResponse;
import com.yidiandao.business.data.response.QueryDiscountResponse;

import java.util.List;

/**
 * 发现页相关Model
 */
public interface IDiscoveryModel {

    interface Type {
        int ACTIVE = 0;
        int NEWS = 1;
        int CYCLOPEDIA = 2;
        int WANT_TO_BUY = 3;
    }

    /**
     * 加载发现页，优惠活动列表
     */
    void loadDiscountList(
            boolean isRefreshing,
            String tag,
            OnLoadDiscoveryListener<List<QueryDiscountResponse.Discount>> listener);

    interface OnLoadDiscoveryListener<T> {

        void onSuccess(T t, boolean emptyResult, boolean hasMore);

        void onFailed();

        void onFinal();
    }

    interface OnAccessNetListener<T> {

        void onSuccess(T t);

        void onFailed();

        void onFinal();
    }

    /**
     * 加载发现的主分类的标题相关
     */
    void loadMainTitle(String tag, OnAccessNetListener<List<DiscoveryMainTypeResponse.CatTypeEntity>> listener);

    /**
     * 加载发现的子分类的标题相关
     */
    void loadItemTitle(String tag, String typeId, OnAccessNetListener<List<DiscoveryItemTypeResponse.DataBean.CatListBean>> listener);

    /**
     * 加载发现的子分类下页面的数据
     */
    void loadDiscoveryPageData(String tag, String catId, boolean isRefresh, OnLoadDiscoveryListener<List<Object>> listener);

    /**
     * 加载发现-求购列表
     */
    void loadWantToBuyPageData(boolean isRefreshing, String tag, OnLoadDiscoveryListener<List<Object>> listener);

}
